﻿/**************************************************************
 *
 * 唯一标识：25731155-38d5-47a1-82fd-aa4e576220d2
 * 命名空间：Sgr.DataCategories.Application.Validations
 * 创建时间：2023/8/18 19:34:34
 * 机器名称：DESKTOP-S0D075D
 * 创建者：antho
 * 电子邮箱：fengqinhua2016@163.com
 * 描述：
 *
 **************************************************************/

using FluentValidation;
using Sgr.DataCategories.Application.Commands.DataCategoryItem;

namespace Sgr.DataCategories.Application.Validations.DataCategoryItem
{
    public class CreateCategpryItemCommandValidator : AbstractValidator<CreateCategpryItemCommand>
    {
        public CreateCategpryItemCommandValidator()
        {
            RuleFor(command => command.CategoryTypeCode)
                .NotEmpty().WithMessage("字典分类标识不能为空")
                .MaximumLength(50).WithMessage("字典分类标识长度不能超过50个字符");

            RuleFor(command => command.DcItemName)
                .NotEmpty().WithMessage("字典名称不能为空")
                .MaximumLength(100).WithMessage("字典名称长度不能超过100个字符");

            RuleFor(command => command.DcItemValue)
                .NotEmpty().WithMessage("字典编码不能为空")
                .MaximumLength(100).WithMessage("字典编码长度不能超过100个字符");

            RuleFor(command => command.Remarks)
                .MaximumLength(100).WithMessage("备注长度不能超过100个字符");

            RuleFor(command => command.OrderNumber)
                .GreaterThanOrEqualTo(0).WithMessage("排序号必须大于或等于0");

            RuleFor(command => command.ParentId)
                .GreaterThan(0).When(x => x.ParentId.HasValue)
                .WithMessage("上级ID必须大于0");
        }
    }
}